package demo;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
//import javax.transaction.HeuristicMixedException;
//import javax.transaction.HeuristicRollbackException;
//import javax.transaction.NotSupportedException;
//import javax.transaction.RollbackException;
//import javax.transaction.SystemException;
//import javax.transaction.UserTransaction;

import net.inteidee.handler.GenericDAO;
import net.inteidee.handler.JPAUtil;
import net.inteidee.handler.RuoloDao;
import net.inteidee.handler.UtenteDao;
import net.inteidee.persistenza.Ruolo;
import net.inteidee.persistenza.Utente;



//@ManagedBean
public class UtenteHandler {
	
	EntityManager em = JPAUtil.getEntityManagerFActory().createEntityManager();
	
	private Utente utente ;
	List<Utente> listautenti;
	
	
	
//	public UtenteHandler() {
//		// TODO Auto-generated constructor stub
//		utente = new Utente();
//	}
//	
	
	
	public void addUtente(){
		
		em.getTransaction().begin();
		em.persist(utente);
		em.getTransaction().commit();
		
	}
	
	public String findAll(){
	   
		listautenti = em.createQuery("from Utente").getResultList();
		return "visualizzautenti";
	}
	
//	
//	public String modificaUtente(int id){
//		
//		utente = (Utente) em.createQuery("from Utente where id="+id).getResultList().get(0);
//		return "modificautente";
//
//	}
	
	public String testCommandButton(){
		System.out.println("Command Button");
		return "Caio";
	}

	public Utente getUtente() {
		return utente;
	}

	public void setUtente(Utente utente) {
		this.utente = utente;
	}

	public List<Utente> getListautenti() {
		return listautenti;
	}

	public void setListautenti(List<Utente> listautenti) {
		this.listautenti = listautenti;
	}
	
	

	
	
	//------------- UTILIZZO DAO----------------
	private UtenteDao utenteDao = new UtenteDao();
	private RuoloDao ruoloDao = new RuoloDao();
	
	public UtenteHandler(){
		utenteDao = new UtenteDao();
	}
	
	public Utente getUtenteForLogin(String username){
		return utenteDao.findByUsername(username);
	}
	
	public Ruolo getRuoloForLogin(long entityID){
		return 	ruoloDao.find(entityID);
	}
	//------------------------------------------
}
